package com.test2;

//子弹类
class Shot implements Runnable {
	int x;
	int y;
	int direct;
	int speed = 2;
	boolean isLive=true;

	public Shot(int x, int y, int direct) {
		this.x = x;
		this.y = y;
		this.direct = direct;
	}

	@Override
	public void run() {
		// TODO 自动生成的方法存根
		while (true) {
			//让线程休息
			try {
				Thread.sleep(50);
			} catch (InterruptedException e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
			
			switch (direct) {
			case 1:// 上
				y -= speed;
				break;
			case 2:// 右
				x += speed;
				break;// 下
			case 3:
				y += direct;
				break;// 左
			case 4:
				x -= speed;
				break;

			}
			//子弹什么时候死亡
			
			//判断子弹是否碰到边缘
			if(x<0||x>400||y<00||y>300){
				this.isLive=false;
				break;
			}
		}
	}
}

// 坦克类
class TanK {
	// 表示坦克的x坐标
	int x = 0;
	// 表示坦克的y坐标
	int y = 0;
	// 表示方向
	int direct = 1;
	// 表示速度
	int speed = 2;
	// 表示颜色
	int type;

	TanK(int x, int y) {
		this.x = x;
		this.y = y;
	}

	public int getX() {
		return x;
	}

	public void setX(int x) {
		this.x = x;
	}

	public int getY() {
		return y;
	}

	public void setY(int y) {
		this.y = y;
	}

	public int getDirect() {
		return direct;
	}

	public void setDirect(int direct) {
		this.direct = direct;
	}

	public int getSpeed() {
		return speed;
	}

	public void setSpeed(int speed) {
		this.speed = speed;
	}

	public int getType() {
		return type;
	}

	public void setType(int type) {
		this.type = type;
	}

}

// 敌人坦克
class EnemyTank extends TanK {

	EnemyTank(int x, int y) {
		super(x, y);
		// TODO 自动生成的构造函数存根
	}

}

// 我的坦克类
class Hero extends TanK {

	// 子弹
	Shot s = null;

	public Hero(int x, int y) {
		super(x, y);
		// TODO 自动生成的构造函数存根
	}

	// 开火
	public void shotEnemy() {
		switch (this.direct) {
		case 1:
			s = new Shot(x, y - 15, 1);
			break;
		case 2:
			s = new Shot(x + 15, y, 2);
			break;
		case 3:
			s = new Shot(x, y + 15, 3);
			break;
		case 4:
			s = new Shot(x - 15, y, 4);
			break;
		}
		//启动子弹线程
		Thread t=new Thread(s);
		t.start();
	}

	// 坦克向上移动
	public void moveUp() {
		y -= speed;
	}

	// 坦克向右移动
	public void moveRight() {
		x += speed;
	}

	// 坦克向下移动
	public void moveDown() {
		y += speed;
	}

	// 坦克向左移动
	public void moveLeft() {
		x -= speed;
	}

}
